package com.bedrock.project.inside.vo.request;

import com.bedrock.framework.aspectj.lang.annotation.Excel;
import com.bedrock.project.inside.entity.ProjectUserInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;

/**
 * 项目信息对象vo
 * 
 * @author bedrock
 * @date 2020-04-08
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectInfoReqVo
{

    /** 项目id */
    private Long projectId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    @NotBlank(message = "项目名不能为空")
    @Size(min = 0, max = 64, message = "项目名称不能超过64个字符")
    private String projectName;

    /** 项目地点 */
    @Excel(name = "项目地点")
    @NotBlank(message = "项目地点不能为空")
    @Size(min = 0, max = 64, message = "项目地点不能超过10个字符")
    private String projectLocation;

    /** 项目类型 */
    @Excel(name = "项目类型")
    @NotNull(message = "项目类型不能为空")
    private String projectType;

    /** 合同金额 */
    @Excel(name = "合同金额")
    @NotNull(message = "合同金额不能为空")
    @Min(value = 0,message = "合同金额最小为0万元")
    @Max(value = 1000000000,message = "合同金额最大为1000000000万元")
    private String projectAmount;

    /** 净合同额 */
    @Excel(name = "净合同额")
    @Min(value = 0,message = "净合同金额最小为0万元")
    @Max(value = 1000000000,message = "净合同金额最大为1000000000万元")
    private String netContractAmount;

    /** 计划开始时间 */
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartTime;

    /** 预计时长 */
    @Excel(name = "预计时长")
    private String planTime;

    /** 项目状态 */
    @Excel(name = "项目状态")
    @NotBlank(message = "项目状态不能为空")
    private String projectStatus;

    /** 销售员id */
    @Excel(name = "销售员id")
    @NotNull(message = "销售员不能为空")
    private Long salemanId;

    /** 销售员name */
    @Excel(name = "销售员name")
    @NotNull(message = "销售员不能为空")
    private String salemanName;

    /** 负责人id */
    @Excel(name = "负责人id")
    private Long principalId;

    /** 负责人name */
    @Excel(name = "负责人name")
    private String principalName;


    /** 成员数组 */
    @Excel(name = "成员数组")
    private List<ProjectUserInfo> member;

    /** remark */
    @Excel(name = "备注")
    @Size(min = 0,max = 4000,message = "备注字符长度不能大于4000")
    private String remark;

    /** 是否立项 0:是;1:否;2:内部 */
    @Excel(name = "是否立项")
    private Integer approval;

    /** 项目附件json对象 */
    private String projectFile;

}
